Tips&Tricks | I trucchi del mestiere |
![]() |
Estrarre da un file ZIP |
//Classe unzipFile class unzipFile { //Stream file sorgente (zip) FileInputStream sorgStream=null; //Stream file di destinazione FileOutputStream destStream=null; //Buffer input BufferedInputStream sorgStreamBuff=null; //Buffer output BufferedOutputStream destStreamBuff=null; //Stream per leggere da un file .zip ZipInputStream zipIn=null; //Zip entry ZipEntry zipEntry=null; //Array dati byte[] data=new byte[2048]; //Stringa destinazione completa String destCompleta=null; //sorg deve essere un percorso del tipo c:\prova.zip; dest deve essere un percorso di tipo c:\unzip\ public void unzipFromTo(String sorg, String dest) { //Apertura stream di lettura try { //Apre stream di lettura sorgStream=new FileInputStream(sorg); //Apre buffer sorgStreamBuff=new BufferedInputStream(sorgStream); } catch (IOException e) { System.out.println("Errore durante l'apertura degli stream"); } //Apertura ZipInputStream zipIn=new ZipInputStream(sorgStreamBuff); //Catch per posizionamento nell'entry da leggere try { //Apre entry ed esce dal ciclo se non ce ne sono pi∙ while((zipEntry=zipIn.getNextEntry())!=null) { //Creazione del percorso del file in cui estrarre l'entry del file zip //concatenando il valore di ritorno di ZipEntry.getName() e la cartella scelta dall'utente destCompleta=dest + zipEntry.getName(); //Apre stream di scrittura destStream=new FileOutputStream(destCompleta); //Apre buffer destStreamBuff=new BufferedOutputStream(destStream); //Lettura zip e scrittura file decompresso int count; //Legge 2048 byte dal file zip e controlla EOF while((count=zipIn.read(data,0,2048))!=-1) { //Scrive su disco i dati decompressi destStreamBuff.write(data,0,count); } //Chiude entry corrente zipIn.closeEntry(); //Chiude file stream di output destStreamBuff.close(); destStream.close(); } } catch(IOException e) { System.out.println("Errore estrazione file."); } try { //Chiusura file stram e zip stream zipIn.close(); sorgStreamBuff.close(); } catch(IOException e) { System.out.println("Errore chiusura"); } } } |
![]() |
Eseguire un comando di sistema in Java |
String [] comando={"cat","nome file.txt"}; Runtime.getRuntime().Exec(comado); |
![]() |
Script in cascata |
<script language="javascript"> document.write("<sc"+"ript LANGUAGE=\"JavaScript\" SRC=\"...\"> </sc"+"ript>"); </script> |
![]() |
Un approfondimento del Tip "Pass-by-Value e Pass-By-Reference" |
import java.rmi.*; public interface Libreria extends Remote { public void cambiaAttributo(MioOggetto mioOggetto) throws RemoteException; àà } àà // fine classe import java.io.Serializable; public class MioOggetto implements Serializable { public String nome; public MioOggetto(String nome) { this.nome = nome; } public void setNome(String nome) { this.nome = nome; } public String getNome() { return this.nome; } } àà // fine classe |
import java.rmi.*; public class Cliente { public static void main(String args[]) { ...... try { MioOggetto mioOggetto = new MioOggetto("Marco"); Libreria libreria = (Libreria) Naming.lookup("rmi://127.0.0.1:1099/istanzalibreria"); // Si suppone un oggetto servente abbia memorizzato nel RMIRegistry un istanza di Libreria con il nome indicato. libreria.cambiaAttributo(mioOggetto); System.out.println("Nome : " + mioOggetto.getNome()); } // end try catch(Exception e) { } } } |
à public void cambiaAttributo(MioOggetto mioOggetto) { mioOggetto.setNome("Pippo"); } à |
Nome : Marco |
public interface Libreria extends Remote { public MioOggetto cambiaAttributo(MioOggetto mioOggetto) throws RemoteException; àà } Ecco anche come modificare il programma Cliente: import java.rmi.*; public class Cliente { public static void main(String args[]) { ...... try { MioOggetto mioOggetto = new MioOggetto("Marco"); Libreria libreria = (Libreria) Naming.lookup("rmi://127.0.0.1:1099/istanzalibreria"); mioOggetto = libreria.cambiaAttributo(mioOggetto); System.out.println("Nome : " + mioOggetto.getNome()); } // end try catch(Exception e) { } } } |
à public MioOggetto cambiaAttributo(MioOggetto mioOggetto) { mioOggetto.setNome("Pippo"); return mioOggetto; } à |
Nome : Pippo |